package com.zztest.aitestmini.service.impl;

import com.zztest.aitestmini.common.TokenDb;
import com.zztest.aitestmini.dao.HogwartsTestJenkinsMapper;
import com.zztest.aitestmini.dao.ZzTestUserMapper;
import com.zztest.aitestmini.dto.ResultDto;
import com.zztest.aitestmini.dto.TokenDto;
import com.zztest.aitestmini.entity.HogwartsTestJenkins;
import com.zztest.aitestmini.entity.ZzTestUser;
import com.zztest.aitestmini.service.HogwartsTestJenkinsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.Objects;

/**
 * @Author: zhangcheng
 * @Description:
 * @Date: 2021/4/13/013 16:33
 * @Version: 1.0
 */
@Service
public class HogwartsTestJenkinsServiceImpl implements HogwartsTestJenkinsService {
    @Autowired
    private HogwartsTestJenkinsMapper hogwartsTestJenkinsMapper;
    @Autowired
    private ZzTestUserMapper zzTestUserMapper;
    @Autowired
    private TokenDb tokenDb;

    @Override
    //注解事务 spring 声明式事务
    @Transactional(rollbackFor = Exception.class)
    public ResultDto<HogwartsTestJenkins> save(TokenDto tokenDto, HogwartsTestJenkins hogwartsTestJenkins) {
        hogwartsTestJenkins.setCreateTime(new Date());
        hogwartsTestJenkins.setUpdateTime(new Date());
        hogwartsTestJenkinsMapper.insertUseGeneratedKeys(hogwartsTestJenkins);
        //定位标识符
        Integer flag = hogwartsTestJenkins.getDefaultJenkinsFlag();
        //判断 是为默认服务器
        if (Objects.nonNull(flag)&&flag==1){
            //获取创建人id
            Integer createUserId = hogwartsTestJenkins.getCreateUserId();
            //赋值给 测试用户
            ZzTestUser zzTestUser = new ZzTestUser();
            zzTestUser.setId(createUserId);
            zzTestUser.setDefaultJenkinsId(hogwartsTestJenkins.getId());
            //更新用户表信息
            zzTestUserMapper.updateByPrimaryKeySelective(zzTestUser);
            //更新token
            tokenDto.setDefaultJenkinsId(hogwartsTestJenkins.getId());
            tokenDb.addTokenDto(tokenDto.getToken(),tokenDto);
        }
        //插入到数据库
        return ResultDto.success("成功", hogwartsTestJenkins);
    }

}
